﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Linq;

namespace Servidor
{
    public partial class Principal : Form
    {

        bool RandomGenerado = false;
        dbEntities db = new dbEntities();
        int CantJuegos = 0;
        int i = 0;
        List<Juego> ListaDeJuegos = new List<Juego>(); 

        public Principal()
        {
            InitializeComponent();
        }

        private void Principal_Load(object sender, EventArgs e)
        {
            try
            {
                 /* Textos texto1 = new Textos();
                 Textos texto2 = new Textos();
                 Textos texto3 = new Textos();
                 texto1.IdTextos = 1;
                 texto1.Texto = "juga y Gana con nosotros! Hoy puede ser Millonario!!!";
                 db.AddToTextos(texto1);
                 db.SaveChanges();
                 texto2.IdTextos = 2;
                 texto2.Texto = "Reserve su billete de navidad";
                 db.AddToTextos(texto2);
                 db.SaveChanges();
                 texto3.IdTextos = 3;
                 texto3.Texto = "Tarjetas - Saldo Virtual - Impresiones - Cd - DVD - Penddrive";
                 db.AddToTextos(texto3);
                 db.SaveChanges();*/

                // Cargo la primera pantalla

                //LblTexto3.Text = texto.First();

                PrimeraPantalla();

                
            }
            catch
            {

            }
        }
        private void TmTexto3_Tick(object sender, EventArgs e)
        {
            LblTexto3.Location = new Point(LblTexto3.Location.X + 10, LblTexto3.Location.Y);

            if (LblTexto3.Location.X > this.Width)
            {
                LblTexto3.Location = new Point(0 - LblTexto3.Width, LblTexto3.Location.Y);
            }
        }

        public void PrimeraPantalla()
        {
            this.BackgroundImage = Properties.Resources._1;
            CargarTextosPrimerPantalla();
            OcultarTextosNumAleatorios();
            OcultarTextosTerceraPantalla();
            MostrarTextosPrimerPantalla();
            TmTexto3.Start();
            CargarJuegosDelDia();
            TmSegundaPantalla.Start();
        }

        public void CargarTextosPrimerPantalla()
        {
               
            var textoaux1 = from txt in db.Textos
                            where txt.IdTextos == 1
                            select txt.Texto;

            LblTexto1.Text = textoaux1.First();

            // Cargo el segundo texto
            var textoaux2 = from txt in db.Textos
                            where txt.IdTextos == 2
                            select txt.Texto;

            LblTexto2.Text = textoaux2.First();

            var textoaux3 = from txt in db.Textos
                            where txt.IdTextos == 3
                            select txt.Texto;

            LblTexto3.Text = textoaux3.First();

        }

        public void OcultarTextosPrimerPantalla()
        {
            LblTexto1.Visible = false;
            LblTexto2.Visible = false;
           // LblTexto3.Visible = false;

        }

        public void OcultarTextosNumAleatorios()
        {
            LblTextoNumerosAleatorios.Visible = false;
            LblNum1.Visible = false;
            LblNum2.Visible = false;
            LblNum3.Visible = false;
            LblNum4.Visible = false;
            LblNum5.Visible = false;
            LblNum6.Visible = false;

           }

        public void MostrarTextosPrimerPantalla()
        {
            LblTexto1.Visible = true;
            LblTexto2.Visible = true;
            LblTexto3.Visible = true;
        }

        public void MostrarTextosNumAleatorios()
        {
            LblTextoNumerosAleatorios.Visible = true;
            LblNum1.Visible = true;
            LblNum2.Visible = true;
            LblNum3.Visible = true;
            LblNum4.Visible = true;
            LblNum5.Visible = true;
            LblNum6.Visible = true;

        }

        public void OcultarTextosTerceraPantalla()
        {
            LblNombre.Visible = false;
            LblJuega.Visible = false;
            LblHora.Visible = false;
            LblPozo.Visible = false;
            LblPrecio.Visible = false;
            LblAciertos.Visible = false;
            LblSorteosExtraordinarios.Visible = false;
        }

        public void MostarTextosTerceraPantalla()
        {
            LblNombre.Visible = true;
            LblJuega.Visible = true;
            LblHora.Visible = true;
            LblPozo.Visible = true;
            LblPrecio.Visible = true;
            LblAciertos.Visible = true;
            LblSorteosExtraordinarios.Visible = true;
        }


        public void GenerarNumerosFavoritos()
        {
            if (RandomGenerado == false)
            {
                // Genero los numeros aleatorios
                Random Aleatorio = new Random();
                int num1 = Aleatorio.Next(20, 30);
                int num2 = Aleatorio.Next(30, 50);
                int num3 = Aleatorio.Next(50, 60);
                int num4 = Aleatorio.Next(60, 80);
                int num5 = Aleatorio.Next(0, 10);
                int num6 = Aleatorio.Next(10, 20);

                // Cargo los numeros generados en los labels
                LblNum1.Text = Convert.ToString(num1);
                LblNum2.Text = Convert.ToString(num2);
                LblNum3.Text = Convert.ToString(num3);
                LblNum4.Text = Convert.ToString(num4);
                LblNum5.Text = Convert.ToString(num5);
                LblNum6.Text = Convert.ToString(num6);

                RandomGenerado = true;
            }
        }

        public void CargarJuegosDelDia()
        {
            int DiaDeLaSemana = Convert.ToInt32(DateTime.Today.DayOfWeek);

            // Selecciono todos los juegos para este dia
            var juegos = from j in db.Juego
                         join d in db.Dias on
                         j.IdJuego equals d.Juego.IdJuego
                         where d.Dia == 4
                         select j;


            foreach (var juego in juegos)
            {
                ListaDeJuegos.Add(juego);
            }

            // Cantidad de juegos cargados
            CantJuegos = (from j in db.Juego
                             join d in db.Dias on
                             j.IdJuego equals d.Juego.IdJuego
                             where d.Dia == 4
                             select j).Count();
        }

        private void TmSegundaPantalla_Tick(object sender, EventArgs e)
        {    
             OcultarTextosPrimerPantalla();
             this.BackgroundImage = Properties.Resources._2;
             LblTextoNumerosAleatorios.Text = "Numeros Favoritos!! Para el Día " + DateTime.Today.Date.ToShortDateString();
             GenerarNumerosFavoritos();
             MostrarTextosNumAleatorios();
             TmSegundaPantalla.Stop();
             TmTerceraPantalla.Start();

        }

        private void TmTerceraPantalla_Tick(object sender, EventArgs e)
        {   
            OcultarTextosNumAleatorios();
            MostarTextosTerceraPantalla();
            this.BackgroundImage = Properties.Resources._3;

            if (i < CantJuegos)
            {
                switch (ListaDeJuegos[i].Tipo)
                {
                    case 1:
                        this.BackgroundImage = Properties.Resources._3;
                        LblNombre.Text = ListaDeJuegos[i].Nombre;
                        LblJuega.Text = Convert.ToString(ListaDeJuegos[i].Fecha);
                        LblHora.Text = Convert.ToString(ListaDeJuegos[i].HoraCierre);
                        LblPozo.Text = Convert.ToString(ListaDeJuegos[i].Pozo);
                        break;
                    case 2:
                        this.BackgroundImage = Properties.Resources._4;
                        LblNombre.Text = ListaDeJuegos[i].Nombre;
                        LblJuega.Text = Convert.ToString(ListaDeJuegos[i].Fecha);
                        LblPozo.Text = Convert.ToString(ListaDeJuegos[i].Pozo);
                        LblAciertos.Text = "Ganas con solo " + Convert.ToString(ListaDeJuegos[i].Aciertos) + " Aciertos";
                        break;
                    default: 
                        this.BackgroundImage = Properties.Resources._3;
                        LblNombre.Text = ListaDeJuegos[i].Nombre;
                        LblJuega.Text = Convert.ToString(ListaDeJuegos[i].Fecha);
                        LblHora.Text = Convert.ToString(ListaDeJuegos[i].HoraCierre);
                        LblPozo.Text = Convert.ToString(ListaDeJuegos[i].Pozo);
                        break;
                       
                }
                i++;
            }

            else
            {
                TmTerceraPantalla.Stop();
                PrimeraPantalla();
                i = 0;
            }
           
            

        }

    }
}
